<script>
  const list = [1, 2, 3]
  const newList = list.filter((item) => {
    // 这里你需要return一个判断条件（布尔值） 满足条件的项会出现在将来的新数组中
    return item > 1
  })
  console.log(newList)

  // 1. 参数
  // 2. 返回值 [] 放的是满足条件的所有项
  // 3. 核心逻辑：遍历数组 针对于每一项都做判断 满条件即可加入到新数组中
  function selfFilter (list, cb) {
    let _list = [] // 将来return出去的数组存放满足条件的项
    for (let i = 0; i < list.length; i++) {
      // 做是否满足条件的判断 满足条件 push _list
      // cb执行结果是一个判断条件
      if (cb(list[i])) {
        _list.push(list[i])
      }
    }
    return _list
  }
  const list2 = selfFilter(list, (item) => {
    return item > 2
  })
  console.log(list2);
</script>